iT邦幫忙

2025 iThome 鐵人賽

DAY 5
2
生成式 AI

從 RAG 到 Agentic RAG:30 天打造本機智慧檢索系統系列 第 5

Day 5: 向量資料庫很重要嗎?可以怎麼挑呢?

  • 分享至 

  • xImage
  •  

🔍 向量資料庫 (Vector Database) 為何重要?

在 RAG 系統中,找到「語意最接近的知識片段」是核心,然而昨日文章有提到,要做語意檢索,其實是需要先做embedding,讓資料變成是向量,而要正確找到資訊還需要以向量做為索引來高維度向量檢索,而如何達到高速檢索,就是 向量資料庫重要之處。
與傳統關聯式資料庫(RDBMS)不同,向量資料庫專門設計用來處理 高維度向量檢索,支援相似度搜尋、Metadata 過濾,以及針對語言模型優化的索引機制。


📊 與一般資料庫的不同

項目 一般資料庫 向量資料庫
資料結構 表格(Rows / Columns) 高維向量(向量空間)
查詢方式 SQL、條件篩選 相似度搜尋(cosine / dot product / L2)
適用場景 CRUD 操作、交易 語意檢索、推薦系統、RAG
延展性 資料量級 → TB 向量數量 → 億級(需高效索引)

⚙️ 向量資料庫的評估指標

在挑選向量資料庫時,可以透過以下幾個維度來衡量:

  • RPS (Requests-per-Second):每秒能處理多少請求,反映系統在多用戶情境下的效能。
  • Latency (延遲):單次請求的處理時間。
  • p95 Latency (95% 延遲):95% 的請求在多長時間內完成,更符合真實用戶體驗。
  • Index time (索引時間):建立索引的速度,特別重要在大規模資料匯入時。
  • Precision (精確度):檢索回傳結果與實際相關性的吻合程度。

🗄️ 常見向量資料庫的基本比較

因為我們的目的是要做地端部署,因此也要檢查是否是用於本地

向量庫 是否本地部署 查詢效率 Metadata 查詢 LangChain 支援 權限機制
FAISS ✅ 完整本地 ⚡ 快速(記憶體型) ❌ 需自行處理 ✅ 可 ❌ 須自行設計
Qdrant ✅ Docker / 本地 server ⚡ 高效 ✅ 原生支援 filter ✅ 可 ✅ tag & namespace 管控
Weaviate ✅ 可私有化(Docker) ⚡ 高效 ✅ Graph-like filter ✅ 可 ❌ 須自行設計
Milvus / Zilliz ✅ 本地 or Zilliz Cloud ⚡⚡ 極快(大規模適合) ✅ 支援 filter ✅ 可 ❌ 須自行設計
Pinecone ❌ 僅雲端 ⚡ 高效 ✅ 支援 ✅ 可 ✅(企業版)
ChromaDB ✅ 支援 ⚠️ 較差 ✅ 支援 filter ✅ 可 ❌ 須自行設計

🔎 向量資料庫的相似度檢索方式比較

在向量資料庫中,相似度檢索的核心是如何在「高維度空間」中找到與查詢最接近的向量。
大部分資料庫會採用 ANN (Approximate Nearest Neighbor) 技術,以在「速度」與「精確度」之間取得平衡。
因我們的需求是地端佈署,所以筆者整理幾個支援地端的向量庫資料供參考如下表:

支援地端之向量資料庫與檢索技術

向量資料庫 檢索方式 / 演算法 特點
FAISS IVF, HNSW, PQ(Product Quantization), Flat(精確搜尋) Facebook AI 開發,支援 GPU,速度快但功能相對單純。
Qdrant HNSW (Hierarchical Navigable Small World Graph) 目前最常用的 ANN 方法之一,檢索速度快、精度高,支援 filtering + payload,適合企業級應用。
Weaviate HNSW 為核心 支援 Graph-like 查詢與多模態(文字、圖片等)檢索。
ChromaDB 預設 HNSW 簡單易用,適合小型或原型專案,但效能有限。

🔑 補充說明

  • HNSW (Hierarchical Navigable Small World)
    • Graph-based ANN 方法,目前是檢索速度和精度最均衡的選擇。
    • Qdrant、Weaviate、Milvus、Chroma 多半預設用 HNSW。
  • IVF (Inverted File Index)
    • 把向量分到不同的 cluster,再在 cluster 內搜尋 → 適合大規模數據。
  • PQ (Product Quantization)
    • 用壓縮向量降低記憶體與儲存成本,但精度下降。
  • Flat / Exact Search
    • 完全精確搜尋,結果最準確但效能差(O(N))。

筆者自己是以ChromaDB和Qdrant作為開發,兩個資料庫都有以下幾項優點:

  • 支援 本地部署(Rust 開發,效能佳,Docker 部署簡單)
  • 原生 metadata 過濾,可用於權限隔離、多租戶場景
  • 設計理念貼近 企業應用(multi-tenant 支援)
  • LangChain 官方支援(Qdrant class 已內建)

👉 對於企業級 RAG 系統,Qdrant 在 效能、靈活性、擴展性 上都是目前最平衡的選擇,ChromaDB則是對於小型專案可以快速開發,我們在這周實作先使用ChromaDB來實作,後面進階版本則會使用Qdrant,到時候可以一起比較一下兩者差異。


上一篇
Day 4: 為什麼要做 Embedding? 又為什麼重要?
下一篇
Day 6:實作的前置準備
系列文
從 RAG 到 Agentic RAG:30 天打造本機智慧檢索系統6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言